import request from '@/utils/request';
import { HTTP_METHOD } from '@/utils/http';

const base_url = '/work';

/**
 * 工单列表/我的工单/待办事项
 * @param {*} per_page 页面数据
 * @param {*} page 页面索引
 * @param {*} sps 工单类型 0=我的工单 1=全部工单 2=待办事项
 * @param {*} status 状态
 * @param {*} type 类型
 * @param {*} name__icontains 工单名称
 * @param {*} number__icontains 工单编号
 * @param {*} user 创建人
 */
export function work(
  per_page,
  page,
  {
    sps = 1,
    status,
    type,
    name__icontains,
    number__icontains,
    user
  }
) {
  return request({
    url: base_url,
    method: HTTP_METHOD.GET,
    params: {
      per_page,
      page,
      sps,
      status,
      type,
      name__icontains,
      number__icontains,
      user
    }
  });
}

/**
 * @export 获取贷款流程id
 */
export function getLoanTaskId() {
  return request({
    url: `${base_url}/loans/get_aid`,
    method: HTTP_METHOD.GET
  });
}

/**
 * @export 获取还款流程id
 */
 export function getRepaymentTaskId() {
  return request({
    url: `${base_url}/borrow/get_aid`,
    method: HTTP_METHOD.GET
  });
}

/**
 * @export 获取借款状态
 * @return {*}
 */
export function getLoanStatus() {
  return request({
    url: `${base_url}/many_loans`,
    method: HTTP_METHOD.POST
  });
}

/**
 * @export 获取状态下拉
 * @return {*}
 */
export function getStatus() {
  return request({
    url: `${base_url}/status`,
    method: HTTP_METHOD.GET
  });
}

/**
 * @export 获取工单类型
 * @return {*}
 */
export function getTask() {
  return request({
    url: `${base_url}/task`,
    method: HTTP_METHOD.GET
  });
}

/**
 * @export 创建工单
 * @param {*} alias_id 工单名称
 * @return {*}
 */
export function createWorkTask(alias_id) {
  const data = {
    alias_id
  };

  return request({
    url: `${base_url}/task`,
    method: HTTP_METHOD.POST,
    data: {
      alias_id
    }
  });
}

/**
 * @export 获取工单
 * @param {*} tid createWorkTask 返回
 * @return {*}
 */
export function getWorkTask(tid) {
  return request({
    url: `${base_url}/task/${tid}`,
    method: HTTP_METHOD.GET
  });
}

/**
 * @export 登录人员需要处理的任务id
 * @param {*} tid
 * @return {*}
 */
export function getTaskUser(tid) {
  return request({
    url: `${base_url}/task/user/${tid}`,
    method: HTTP_METHOD.GET
  });
}

/**
 * @export 任务处理
 * @param {*} tid createWorkTask 返回
 * @param {*} action 任务
 * @param {*} [task={}] 工单
 * @return {*}
 */
export function actionTaskUser(tid, action, task = {}) {
  const data = {
    ...task
  };

  return request({
    url: `${base_url}/task/user/${tid}/${action}`,
    method: HTTP_METHOD.POST,
    data
  });
}

/**
 * @export 获取流程图
 * @param {*} tid
 * @return {*}
 */
export function getWorkChart(tid) {
  return request({
    url: `${base_url}/chart/${tid}`,
    method: HTTP_METHOD.GET
  });
}

/**
 * @export 获取审批记录
 * @param {*} tid
 * @return {*}
 */
export function getWorkAction(per_page, page, tid) {
  return request({
    url: `${base_url}/${tid}/action`,
    method: HTTP_METHOD.GET,
    params: {
      per_page,
      page
    }
  });
}

/**
 * @export 获取状态下拉
 */
export function getWorkStatus() {
  return request({
    url: `${base_url}/status`,
    method: HTTP_METHOD.GET
  });
}

/**
 * @export 获取当前节点信息
 * @param {*} tid 任务信息
 */
export function getCurrentNode(tid) {
  return request({
    url: `${base_url}/current_node/${tid}`,
    method: HTTP_METHOD.GET
  });
}

/**
 * @export 获取借款列表
 * @param {*} per_page 数据
 * @param {*} page 页码
 * @return {*}
 */
export function getLoans(per_page, page) {
  return request({
    url: `${base_url}/all_loans`,
    method: HTTP_METHOD.GET,
    params: {
      per_page, page
    }
  });
}
